The Nokia 770 is the latest craze to hit the playground. First it was Pogs, Go-Gos, Diablos and then Yo-Yos. But now it seems everyone and their dog has got a 770, and is busy customising, crashing, hacking and rebooting their way to mobile internetdom*.
*As long as you are near a wifi point, or have one of the 5 models of mobile phone that actually work through bluetooth with the 770 :)
IT2007 HE tips
- Initially, the radio streamer doesn't work in IT2007 HE on the 770. To fix this, type:
gconftool-2 --set /apps/osso/osso_media_server/demux_audio/application_x-icy --type list --list-type string '[application/x-icy,icydemux]'
in a console and reboot. - The Application Manager has a "red pill" mode which allows you to see all the packages available, not just user apps. To enable it, add a new repository, put "matrix" in the URL box and then click Cancel. Choose Red to see the extra packages, Blue to switch back to normal view.
- To disable the annoying Nokia jingle on boot, move or delete the file "/usr/share/sounds/ui-wake_up_tune.wav". This also improves the boot time by about 5 seconds as it doesn't have to wait for the sound to play before continuing
- To change your bootup/shutdown Nokia logo and the splash screen, edit the files:
/usr/share/icons/hicolor/scalable/hildon/qgn_indi_startup_nokia_logo.png
/usr/share/icons/hicolor/scalable/hildon/qgn_indi_nokia_hands.jpg
- Free 22MB (22808k) on your root filesystem
- remove all PDFs except User_guide_English_GB.pdf from /home/user/MyDocs/.documents/ Of course, you can delete that one too if you want.
- Move the sample audio and video in /home/user/MyDocs/.sounds/ and /home/user/MyDocs/.videos onto your MMC (or delete them).
- Remove all dirs except en_GB and graphics from /usr/share/osso-help/
- The supplied gpsd does not work on the 770. My solution was to download gpsd_2.33-5_armel.deb, then do the following:
dpkg --extract gpsd_2.33-5_armel.deb [somedir]
cd [somedir]
cp -R * /
ln -s /usr/lib/libdbus-1.so.2.0.0 libdbus-1.so.3
Creating an application icon
Having installed kismet, and used it in conjunction with my GPS, I decided it would be useful to be able to launch it from a single button-press on the home screen rather than have to open xterm and then start it by typing several lines into the shell.
The first step was to write a script that turned these several lines into a single command - first, I have to connect to the GPS unit, wait for the connection to be established, start gpsd and then fire up kismet as root (so that it can manipulate the wifi interface). I had already allowed my user to sudo without a password, so this was simply a case of writing a straightforward script, which I put in /usr/local/sbin. So far so good - as long as the GPS device is switched on and in range, the script connects to it, starts gpsd and fires up kismet. If the GPS cannot be connected to, gpsd fails to start and kismet quits because it can't talk to gpsd, which is fine.
Having done this, it's time to create a menu item. To do this, you need to add kismet.desktop to /usr/share/applications/hildon. Once it's there, you should see a new Kismet icon on the applications menu under "Extras". You can use the Navigation control panel to move this where you want it.
Clicking on the menu item runs the kismet script inside an xterm. When the script finishes, xterm closes - perfect!
However, I wanted to have an icon on my desktop. I use both IDEA! and Simple Launcher as IDEA! gives me nice big icons I can press with a finger and Simple Launcher gives me lots of smaller icons (which I'm using for games). Both require an item to be a service in order for it to run, so you need to put kismet.service into /usr/share/dbus-1/services. Once this is in place, you can add the icon to whichever tool you prefer giving you single click initiation of kismet.
Upgrades to install
- maemo-af-desktop*: fixes the delayed appearance of the desktop on boot
Upgrades that will break your 770
- maemo-launcher 0.21-1: it will crash your 770 and prevent it from booting. Do:
echo "maemo-launcher hold" | dpkg --set-selections
to prevent it being installed using apt-get. Note that this does not stop it appearing in Application Manager. Having done the package hold and tried to install it via package manager, it appears to have installed and did not cause the machine to go into a boot loop. - osso-wlan 1.2.1: Stops the wireless connection from working
- xkbdata 0.8-0osso11: Stops the arrow keys working - both on the device itself and on a bt keyboard
- xserver-xomap 1:1.1.99.3-0osso37: causes a reboot cycle after about 60% of the blue boot progress bar
Restoring from a continually rebooting device
A number of times over the last couple of days, I have managed to get my 770 into a state where it starts booting, fails part way through and then resets and starts the process again. Under these circumstances, the only way to recover is to reflash the operating system to the device. This is a documentation of the steps I am now using in this situation.
- Flash the device with IT2007 HE (as you're reflashing anyway, you might as well put the newest and best version of the OS available onto your device). Instructions for this can be found here.
- If you don't have a backup of your OS to restore from, firstly, shame on you! Secondly, here's the punishment - you now have to add all your maemo repositories and then install all the software you want from scratch. This will probably take about a day. The list of repositories can be found here.
- If you have taken a backup to the memory card, you will be offered the chance to restore it during the initial setup phase. Do so as it will give you your repository list and settings back.
- It still won't give you your applications, so start installing them all over again.
- Once you've finished installing apps, hopefully you won't want to repeat the experience. Therefore, you'll want to take a proper backup that actually takes copies of all your files. This is where my script comes in, found here. See the "Synchronisation and backup using rsync & make" section on Andrew Flegg's Maemo page for details of how to use this. Mine is simply an update of his Makefile that grabs everything that isn't temporary data from the 770's filesystem.
How to recover when you have a complete backup
- Flash the device with IT2007 HE - instructions.
- Install the MMC backup to recover repositories.
- Refresh the package list - although the repositories are there, the lists haven't been downloaded
- Install becomeroot, dropbear-client, dropbear-server, osso-xterm and rsync
- Reboot (otherwise you won't get the nice font it installed for xterm)
- Pair bluetooth keyboard (if available)
- Run xterm
- /usr/sbin/gainroot
- ssh root@localhost
- (Yes you want to continue connection)
- Password: rootme
- passwd
- Choose a password
- exit all three shells - yes, three (gainroot started one)
- Make sure your wifi connection is active
- Plug into the mains (particularly if your battery is low - this will be power intensive)
- Go to the machine you took your backup to
- The Remote Host Identification will have changed as you've installed a new system with a new host key. Remove the key from ~/.ssh/known_hosts (check for multiple keys for the same host and remove them all).
- Save the known_hosts file
- Change to the backup directory and type "make push"
- Yes you're sure you want to continue connecting
- Type the root password that you just chose for your 770 when prompted
- Watch it copy all your data back
- Shutdown
- Power up